package com.tsingeye.viid.domain;

import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;

import java.math.BigDecimal;
import java.sql.Timestamp;
import java.time.LocalDateTime;

/**
 * 车辆对象信息
 * @author 姜风
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@ToString
public class ViidMotorVehicleRequest {

    /**
     * 主键
     */
    private String id;

    /**
     * "车辆标识"
     */
    @JsonProperty("MotorVehicleID")
    private String motorVehicleId;

    /**
     * 设备编码
     */
    @JsonProperty("DeviceID")
    private String deviceId;

    /**
     * 来源标识：来源图像信息标识
     */
    @JsonProperty("SourceID")
    private String sourceId;


    /**
     * 信息分类：人工采集/自动采集
     */
    @JsonProperty("InfoKind")
    private Integer infoKind;

    /**
     * 左上角X坐标
     */
    @JsonProperty("LeftTopX")
    private String leftTopX;

    /**
     * 左上角Y坐标
     */
    @JsonProperty("LeftTopY")
    private String leftTopY;

    /**
     * 右下角X坐标
     */
    @JsonProperty("RightBtmX")
    private String rightBtmX;

    /**
     * 右下角Y坐标
     */
    @JsonProperty("RightBtmY")
    private String rightBtmY;

    /**
     * 号牌种类
     * 1.大型汽车，2.小型汽车，3.使馆汽车，4.领馆汽车，5.境外汽车，6.外籍汽车，7.普通摩托车，8.轻便摩托车，9.使馆摩托车
     * 10.领馆摩托车 11.境外摩托车，12.外籍摩托车，13.低速车，14.拖拉机，15.挂车，16.教练汽车，17.教练摩托车
     * 20.临时入境汽车，21.临时入境摩托车，22.临时行驶车，23.警用汽车，24.警用摩托车，25.愿农机
     * 26.香港入出境，27.澳门入出境，31.武警，32.军队，99.其他
     */
    @JsonProperty("PlateClass")
    private String plateClass;

    /**
     * 有无车牌
     */
    @JsonProperty("HasPlate")
    private String hasPlate;

    /**
     * 车身颜色
     * 1.黑 2.白，3.灰，4.红，5.蓝色，6.黄色，7.橙，8.棕，9.绿色，10.紫色，11.青，12.粉，13.透明，99.其他
     */
    @JsonProperty("VehicleColor")
    private String vehicleColor;

    /**
     * 车牌颜色
     */
    @JsonProperty("PlateColor")
    private String plateColor;

    /**
     * 车牌号
     */
    @JsonProperty("PlateNo")
    private String plateNo;

    /**
     * 关联卡口编号
     */
    @JsonProperty("TollgateID")
    private String tollgateId;

    /**
     * 近景照片
     */
    @JsonProperty("StorageUrl1")
    private String storageUrl1;

    /**
     * 车牌照片
     */
    @JsonProperty("StorageUrl2")
    private String storageUrl2;

    /**
     * 远景照片
     */
    @JsonProperty("StorageUrl3")
    private String storageUrl3;

    /**
     * 合成图
     */
    @JsonProperty("StorageUrl4")
    private String storageUrl4;

    /**
     * 缩略图
     */
    @JsonProperty("StorageUrl5")
    private String storageUrl5;

    /**
     * 位置标记时间
     */
    @JsonProperty("MarkTime")
    private String markTime;

    /**
     * 车辆出现时间
     */
    @JsonProperty("AppearTime")
    private String appearTime;

    /**
     * 车辆消失时间
     */
    @JsonProperty("DisAppearTime")
    private String disAppearTime;

    /**
     * 车道号
     */
    @JsonProperty("LaneNo")
    private Integer laneNo;

    /**
     * 挂车牌号
     */
    @JsonProperty("PlateNoAttach")
    private String plateNoAttach;

    /**
     * 车牌描述
     */
    @JsonProperty("PlateDescribe")
    private String plateDescribe;

    /**
     * 是否套牌
     */
    @JsonProperty("IsDecked")
    private String isDecked;

    /**
     * 是否涂改
     */
    @JsonProperty("IsAltered")
    private String isAltered;

    /**
     * 是否遮挡
     */
    @JsonProperty("IsCovered")
    private String isCovered;

    /**
     * 行驶速度
     */
    @JsonProperty("Speed")
    private long speed;

    /**
     * 行驶方向
     */
    @JsonProperty("Direction")
    private String direction;

    /**
     * 行驶状态代码
     */
    @JsonProperty("DrivingStatusCode")
    private String drivingStatusCode;

    /**
     * 车辆使用性质代码
     */
    @JsonProperty("UsingPropertiesCode")
    private Integer usingPropertiesCode;

    /**
     * 车辆类型
     */
    @JsonProperty("VehicleClass")
    private String vehicleClass;

    /**
     * 车辆品牌
     */
    @JsonProperty("VehicleBrand")
    private String vehicleBrand;

    /**
     * 车辆型号
     */
    @JsonProperty("VehicleModel")
    private String vehicleModel;

    /**
     * 车辆年款
     */
    @JsonProperty("VehicleStyles")
    private String vehicleStyles;

    /**
     * 车辆长度
     */
    @JsonProperty("VehicleLength")
    private Integer vehicleLength;

    /**
     * 车辆宽度
     */
    @JsonProperty("VehicleWidth")
    private Integer vehicleWidth;

    /**
     * 车辆高度
     */
    @JsonProperty("VehicleHeight")
    private Integer vehicleHeight;

    /**
     * 颜色深浅
     */
    @JsonProperty("VehicleColorDepth")
    private String vehicleColorDepth;

    /**
     * 车前盖
     */
    @JsonProperty("VehicleHood")
    private String vehicleHood;

    /**
     * 车后盖
     */
    @JsonProperty("VehicleTrunk")
    private String vehicleTrunk;

    /**
     * 车轮
     */
    @JsonProperty("VehicleWheel")
    private String vehicleWheel;

    /**
     * 车轮印花纹
     */
    @JsonProperty("WheelPrintedPattern")
    private String wheelPrintedPattern;

    /**
     * 车窗
     */
    @JsonProperty("VehicleWindow")
    private String vehicleWindow;

    /**
     * 车顶
     */
    @JsonProperty("VehicleRoof")
    private String vehicleRoof;

    /**
     * 车门
     */
    @JsonProperty("VehicleDoor")
    private String vehicleDoor;

    /**
     * 车侧
     */
    @JsonProperty("SideOfVehicle")
    private String sideOfVehicle;

    /**
     * 车厢
     */
    @JsonProperty("CarOfVehicle")
    private String carOfVehicle;

    /**
     * 后视镜
     */
    @JsonProperty("RearviewMirror")
    private String rearviewMirror;

    /**
     * 底盘
     */
    @JsonProperty("VehicleChassis")
    private String vehicleChassis;

    /**
     * 遮挡
     */
    @JsonProperty("VehicleShielding")
    private String vehicleShielding;

    /**
     * 贴膜颜色
     */
    @JsonProperty("FilmColor")
    private String filmColor;

    /**
     * 改装标志
     */
    @JsonProperty("IsModified")
    private String isModified;

    /**
     * 撞痕信息
     */
    @JsonProperty("HitMarkInfo")
    private String hitMarkInfo;

    /**
     * 车身藐视
     */
    @JsonProperty("VehicleBodyDesc")
    private String vehicleBodyDesc;

    /**
     * 车前部物品
     */
    @JsonProperty("VehicleFrontItem")
    private String vehicleFrontItem;

    /**
     * 车前部物品描述
     */
    @JsonProperty("DescOfFrontItem")
    private String descOfFrontItem;

    /**
     * 车后部物品
     */
    @JsonProperty("VehicleRearItem")
    private String vehicleRearItem;

    /**
     * 车后部物品描述
     */
    @JsonProperty("DescOfRearItem")
    private String descOfRearItem;

    /**
     * 车内人数
     */
    @JsonProperty("NumOfPassenger")
    private Integer numOfPassenger;

    /**
     * 经过时刻
     */
    @JsonProperty("PassTime")
    private String passTime;

    /**
     * 经过道路名称
     */
    @JsonProperty("NameOfPassedRoad")
    private String nameOfPassedRoad;

    /**
     * 是否可疑车
     */
    @JsonProperty("IsSuspicious")
    private String isSuspicious;

    /**
     * 遮阳板状态
     */
    @JsonProperty("Sunvisor")
    private Integer sunvisor;

    /**
     * 安全带状态
     */
    @JsonProperty("SafetyBelt")
    private Integer safetyBelt;

    /**
     * 打电话状态
     */
    @JsonProperty("Calling")
    private Integer calling;

    /**
     * 号牌识别可信度
     */
    @JsonProperty("PlateReliability")
    private String plateReliability;

    /**
     * 每位号牌号码可信度
     */
    @JsonProperty("PlateCharReliability")
    private String plateCharReliability;

    /**
     * 品牌标志识别可信度
     */
    @JsonProperty("BrandReliability")
    private String brandReliability;

    /**
     * 图片信息列表
     */
    @JsonProperty("SubImageList")
    private SubImageInfoObject subImageList;

    @JsonProperty("CreateTime")
    private Timestamp createTime;
}
